前幾天有提到我們為了自動化更新憑證找了SDK 沒想到這是災難的開始,我們後來才知道 Certificate manager 有分兩種,一種是新版本的 Certificate manager,另一種是 classic Certificate manager,狀況你可以看 console。
而我們查到的 SDK 是支援新版本的 Certificate manager,但新版本的 Certificate 竟然沒有支援 Global External load balancer 你建立完後是無法從 loadbalancer 上找到對應資源的。使用指令也會告訴你沒有支援
gcloud compute target-https-proxies update xxx-proxy \
--certificate-manager-certificates=xxx-cert
ERROR: (gcloud.compute.target-https-proxies.update) Could not fetch resource:
- Invalid value for field 'resource.sslCertificates[0]': 'https://certificatemanager.googleapis.com/v1/xxx-cert'. Cloud certificate reference is not supported for TargetHttpsProxy patch.
但我們實作之前,明明才查官網是有的!爬了一下討論串有人提到目前的確是沒有支援,預計2025 會出來。另外看到有人推 certificate map 可以解決此問題。於是我們改用certificate map 解,以下為相關 CLI 指令。
gcloud certificate-manager maps entries create xxx --map=xxx-map --certificates=xxx-cert --hostname='xxx.com' --location=asia-east1
如果是 CLI 則參考
resource "google_compute_target_https_proxy" "default" {
name = "https-proxy"
url_map = google_compute_url_map.default.id
certificate_map = "//certificatemanager.googleapis.com/${google_certificate_manager_certificate_map.default.id}"
}